﻿/* 
 * Chương trình kết nối server máy chủ
 * Đảm nhiệm các nhiệm vụ:
 * 1. Xác thực máy chủ
 * 2. Xác thực người dùng
 * 3. Xác thực kết nối
 * 
 * ===== FAPP: Fami Anti-Phishing Protocol ======
 * Header: The ServerCore Packet
 * [FAPP|Version|Length|Service|SessionId|Data]
 * FAPP: 4 bytes (Fami Anti-Phishing Packet)
 * --> Tên của giao thức
 * Version: 1 byte (Protocol version)
 * --> Phiên bản của giao thức kết nối
 * --> Hiện tại là 0 & chưa cần kiểm tra
 * Length: 2 bytes (Data length)
 * --> Kích thước độ dài gói tin
 * Service: 1 bytes (Service code)
 * --> Dịch vụ nào đang được thực hiện request/respone
 * SessionId: 4 bytes (Session Id)
 * --> Mã hiệu kết nối SC đang thực hiện
 * --> Tương ứng với số lượng kết nối đang thực hiện
 * ----------------------------------------------
 * Quy trình bắt tay
 * 1. Verify
 * --> Server gửi một gói tin Verify tới client
 * --> Nếu nhận được lại gói tin Verify Ack tức svCore đã được cài đặt
 * 2. Bmp
 * --> Server gửi một gói tin Bmp nhắc client gửi cho gói tin BmpResp
 * --> Nếu không nhận được hủy kết nối tới người dùng
 * 3. Auth
 * --> Server gửi một gói tin Auth tới client chứa thông điệp hoàn tất quá trình xác thực
 * --> Client kiểm tra Auth có hợp lệ hay không & báo cho người dùng.
 * 
 * 
 * Giả sử quy trình bắt tay gián đoạn, hoặc có nhiều server kết nối tới ???
 */